package com.cdeledu.thread3.c7hookexception.uncaughtException;

// 我们都知道Runnable接口中的run方法是不允许抛出异常的，因此派生出这个线程的主线程可能无法直接获得该线程在执行过程中的异常信息。如下例：
public class ThreadDemo {

	public static void main(String[] args) throws Exception {
        Thread thread = new Thread(() -> {
            try {
				Thread.sleep(1000);
			} catch (Exception e1) {
				e1.printStackTrace();
			}
            System.out.println(1 / 0); // 这行会导致报错！
        });
        thread.setUncaughtExceptionHandler((t, e) -> {
            e.printStackTrace(); //如果你把这一行注释掉，这个程序将不会抛出任何异常.
        });
        thread.start();
    }
	
}
